Selecting first digital input behavior based on a second input

ABSTRACT

A computing device includes a digital input system that provides digital input functionality for the computing device. The digital input system receives both a first input and a second input. The first input is typically an input with the user&#39;s dominant hand (e.g., using a pen, stylus, finger, etc.), and the second input is typically an input with the user&#39;s non-dominant hand. The digital input system determines whether a second input is received simultaneously with the first input, and selects one of multiple behaviors for the first input based on whether the second input is received simultaneously with the first input. Various different behaviors for the first input can be selected from, such as freehand or freeform input, constraining digital input corresponding to the first input to be along an edge of a stencil, and so forth.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/192,450, filed Jun. 24, 2016, entitled “Selecting First Digital InputBehavior Based On A Second Input”, the disclosure of which is herebyincorporated by reference herein in its entirety. U.S. patentapplication Ser. No. 15/192,450 claims priority under 35 U.S.C. Section119(e) to U.S. Provisional Application No. 62/312,814, filed Mar. 24,2016 and titled “Selecting First Digital Input Behavior Based On ASecond Input”, the entire disclosure of which is hereby incorporated byreference.

BACKGROUND

Devices today (e.g., computing devices) typically support a variety ofdifferent input techniques. For instance, a particular device mayreceive input from a user via a keyboard, a mouse, voice input, touchinput (e.g., to a touchscreen), and so forth. One particularly intuitiveinput technique enables a user to utilize a touch instrument (e.g., apen, a stylus, a finger, and so forth) to provide freehand input to atouch-sensing functionality such as a touchscreen. The freehand inputmay be converted to a corresponding visual representation on a display,such as for taking notes, for creating and editing an electronicdocument, and so forth.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

In accordance with one or more aspects, a first input is received froman input device. A determination is made as to whether a second input toa computing device is received simultaneously with receipt of the firstinput. One of multiple input behaviors is selected for the first input.A first behavior is selected for the first input in response todetermining that the second input to the computing device is receivedsimultaneously with receipt of the first input, and a second behavior isselected for the first input in response to determining that the secondinput to the computing device is received at a different time than thefirst input. A display of data is controlled by the computing devicebased at least on the first input as well as the selected one of themultiple input behaviors.

In accordance with one or more aspects, a computing device includes aninput data collection module, an input behavior determination module,and a data display module. The input data collection module comprisesinstructions configured to receive a first input and a second input. Theinput behavior determination module comprises instructions configured todetermine whether the second input is received simultaneously with thefirst input, and further configured to select a first of multiplebehaviors for the first input in response to the second input beingreceived simultaneously with the first input, and to select a second ofthe multiple behaviors for the first input in response to the secondinput being received at a different time than the first input. The datadisplay module comprises instructions configured to control a display ofdata based at least on both the first input and the selected behaviorfor the first input.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different instances in thedescription and the figures may indicate similar or identical items.Entities represented in the figures may be indicative of one or moreentities and thus reference may be made interchangeably to single orplural forms of the entities in the discussion.

FIG. 1 illustrates an example environment in which the selecting firstdigital input behavior based on a second input discussed herein can beused.

FIG. 2 illustrates an example system including an application anddigital input system in accordance with one or more embodiments.

FIGS. 3, 4, 5, 6, and 7 illustrate examples of using the selecting firstdigital input behavior based on a second input techniques discussedherein in accordance with one or more embodiments.

FIG. 8 is a flowchart illustrating an example process for implementingthe selecting first digital input behavior based on a second touch inputin accordance with one or more embodiments.

FIG. 9 illustrates an example system that includes an example computingdevice that is representative of one or more systems and/or devices thatmay implement the various techniques described herein.

DETAILED DESCRIPTION

Selecting first digital input behavior based on a second input isdiscussed herein. A computing device includes a digital input systemthat provides digital input functionality for the computing device. Thedigital input system can be implemented as part of an application, as astandalone application that provides digital input support to otherapplications, or combinations thereof. A digital input (also referred toherein as just an input) refers to a user input to a computing device.Digital inputs may be provided in various ways, such as using a pen(e.g., an active pen, a passive pen, and so forth), a stylus, a finger,and so forth. The digital inputs discussed herein are provided bymovement of an input device (e.g., stylus, pen, finger, mouse, etc.) ina freehand manner and thus can also be referred to as freehand digitalinputs. The digital input system provides functionality allowingapplications to receive digital inputs from a user of the computingdevice, store received digital inputs, and control the display of databased on the digital inputs.

Various different types of digital inputs can be supported by thedigital input system. In one or more embodiments, the digital inputsystem supports digital ink that can be displayed on a display device.Generally, digital ink refers to freehand input to a touch-sensingdevice such as a touchscreen, which is interpreted by the computingdevice as digital ink (or simply “ink”). Additionally or alternatively,the digital input system supports other types of digital inputs, such asdigital input to erase or delete a portion of data previously input,digital input to control a direction of movement (e.g., a route or pathfor a vehicle to take, a route or path for a game), and so forth.

The digital input system receives digital input from a user and analyzesthe digital input to collect input data for the digital input. Thisinput data refers to various information describing the digital input,such as the coordinates on the input device where the digital inputoccurred and pressure information indicating an amount of pressureapplied at each of those coordinates for the digital input. A digitalinput also optionally refers to the movement of the input device orobject (e.g., a pen, stylus, finger, etc.) along an input surface from abeginning location (e.g., where the input device is brought into contactwith the input surface) to an ending location (e.g., where the inputdevice is pulled away from the input surface).

The digital input system can receive two inputs, referred to as a firstinput (also referred to as a first digital input) and a second input(also referred to as a second digital input). In one or moreembodiments, the first input is also referred to as a primary digitalinput (e.g., the first input being the digital input the user isintending to input) and the second input is also referred to as asecondary digital input (e.g., the presence of or absence of the secondinput simultaneously with the first input is controlling or selectingthe behavior of the first input). The first input is an input using oneof the user's hands (typically the user's dominant hand) and can be anytype of digital input (e.g., using a pen, stylus, finger, mouse, etc.).The second input is an input using the other of the user's hands(typically the user's non-dominant hand). The first input and/or secondinput can be, but need not be, a touch input. An input being a touchinput refers to the input being sensed by a device (e.g., a touchscreendisplay or other input device) as physically touching the device (e.g.,based on pressure applied, optical or image capture, and so forth).

The digital input system determines whether a second input is receivedsimultaneously with the first input, and selects one of multiplebehaviors for the first input based on whether the second input isreceived simultaneously with the first input. The behavior of the firstinput refers to the operations performed by the digital input system(optionally in conjunction with one or more other applications orprograms) in response to the first input, and thus also refers to thebehavior of the digital input that is the first input. Various differentbehaviors for the first input can be supported by the digital inputsystem. For example, the behavior of the first input may be constrainingthe first input to be along an edge of a stencil if the second input isreceived simultaneously with the first input, whereas the behavior ofthe first input may be freeform digital input if the second input is notreceived simultaneously with the first input.

The techniques discussed herein provide a robust and user friendlyexperience with digital inputs. The user can readily have the digitalinput system change the behavior of a first input simply by providing ornot providing the second input. This allows the digital input system toprovide a user interface that is easy for the user to control andprovide digital input. For example, if a user desires to draw a straightline (e.g., along a ruler), rather than requiring the user to navigatethrough a menu system to select a ruler, or have the user place aphysical ruler on or near a touchscreen, the user can simply touch thetouchscreen with one or more fingers of his or her non-dominant hand,draw a line with a pen using his or her dominant hand, and have the linedrawn smooth and straight (conforming to the straight edge of theruler).

FIG. 1 illustrates an example environment 100 in which the selectingfirst digital input behavior based on a second touch input discussedherein can be used. The environment 100 includes a computing device 102that can be embodied as any suitable device such as, by way of example,a desktop computer, a server computer, a laptop or netbook computer, amobile device (e.g., a tablet or phablet device, a cellular or otherwireless phone (e.g., a smartphone), a notepad computer, a mobilestation), a wearable device (e.g., eyeglasses, head-mounted display,watch, bracelet), an entertainment device (e.g., an entertainmentappliance, a set-top box communicatively coupled to a display device, agame console), an Internet of Things (IoT) device (e.g., objects orthings with software, firmware, and/or hardware to allow communicationwith other devices), a television or other display device, an automotivecomputer, and so forth. Thus, the computing device 102 may range from afull resource device with substantial memory and processor resources(e.g., personal computers, game consoles) to a low-resource device withlimited memory and/or processing resources (e.g., traditional set-topboxes, hand-held game consoles).

The computing device 102 includes a variety of different functionalitiesthat enable various activities and tasks to be performed. For instance,the computing device 102 includes an operating system 104, multipleapplications 106, and a communication module 108. Generally, theoperating system 104 is representative of functionality for abstractingvarious system components of the computing device 102, such as hardware,kernel-level modules and services, and so forth. The operating system104, for instance, can abstract various components of the computingdevice 102 to the applications 106 to enable interaction between thecomponents and the applications 106.

The applications 106 represent functionalities for performing differenttasks via the computing device 102. Examples of the applications 106include a word processing application, an information gathering and/ornote taking application, a spreadsheet application, a web browser, agaming application, and so forth. The applications 106 may be installedlocally on the computing device 102 to be executed via a local runtimeenvironment, and/or may represent portals to remote functionality, suchas cloud-based services, web apps, and so forth. Thus, the applications106 may take a variety of forms, such as locally-executed code, portalsto remotely hosted services, and so forth.

The communication module 108 is representative of functionality forenabling the computing device 102 to communicate over wired and/orwireless connections. For instance, the communication module 108represents hardware and logic for communication via a variety ofdifferent wired and/or wireless technologies and protocols.

The computing device 102 further includes a display device 110, inputmechanisms 112, and a digital input system 116. The display device 110generally represents functionality for visual output for the computingdevice 102. Additionally, the display device 110 optionally representsfunctionality for receiving various types of input, such as touch input,pen input, and so forth. The input mechanisms 112 generally representdifferent functionalities for receiving input to the computing device102. Examples of the input mechanisms 112 include gesture-sensitivesensors and devices (e.g., such as touch-based sensors andmovement-tracking sensors (e.g., camera-based)), a mouse, a keyboard, astylus, a touch pad, accelerometers, a microphone with accompanyingvoice recognition software, and so forth. The input mechanisms 112 maybe separate or integral with the display 110; integral examples includegesture-sensitive displays with integrated touch-sensitive ormotion-sensitive sensors. The input mechanisms 112 optionally include apen digitizer 118 and/or touch input devices 120. The pen digitizer 118represents functionality for converting various types of input to thedisplay device 110 and/or the touch input devices 120 into digital datathat can be used by the computing device 102 in various ways, such asfor generating digital ink. The touch input devices 120 representfunctionality for providing touch input separately from the display 110.

Although reference is made herein to the display device 110 receivingvarious types of input such as touch input or pen input, alternativelythe display device 110 may not receive such input. Rather, a separateinput device (e.g., a touchpad) implemented as a touch input device 120can receive such input. Additionally or alternatively, the displaydevice 110 may not receive such input, but a pen (such as pen 122) canbe implemented as a touch input device 120, and the pen provides anindication of the input rather than the input being sensed by thedisplay device 110.

According to various implementations, the digital input system 116represents functionality for performing various aspects of thetechniques for selecting first digital input behavior based on a secondtouch input discussed herein. Various functionalities of the digitalinput system 116 are discussed herein. In one or more embodiments, thedigital input system 116 is implemented as an application 106 (or aprogram of the operating system 104) that provides digital input supportto other applications 106 (or programs of the operating system 104). Thedigital input system 116 optionally includes an application programminginterface (API) allowing the applications 106 or other programs tointeract with the functionality provided by the digital input system116. Alternatively, the digital input system 116 can be implemented inan application 106 and provide digital input support for thatapplication 106 but not for other applications 106. Alternatively, thedigital input system 116 can be implemented as a combination thereof.For example, some functionality of the digital input system 116 can beimplemented in an application 106 (or a program of the operating system104) that provides digital input support to other applications 106 orprograms, and other functionality of the digital input system 116 can beimplemented in the individual applications 106 to which the digitalinput system 116 provides support.

The environment 100 further includes a pen 122, which is representativeof an input device for providing input to the display device 110.Generally, the pen 122 is in a form factor of a traditional pen butincludes functionality for interacting with the display device 110 andother functionality of the computing device 102. In at least someimplementations, the pen 122 is an active pen that includes electroniccomponents for interacting with the computing device 102. The pen 122,for instance, includes a battery that can provide power to internalcomponents of the pen 122. Alternatively or additionally, the pen 122may include a magnet or other functionality that supports hoverdetection over the display device 110. This is not intended to belimiting, however, and in at least some implementations the pen 122 maybe passive, e.g., a stylus without internal electronics.

Digital input can be provided by the user using the pen 122.Additionally or alternatively, digital input can be provided by the userusing other input mechanisms, such as the user's finger, a stylus, andso forth.

In one or more embodiments, the digital input system 116 saves thedigital input. The digital input can be saved in various formats, suchas a Scalable Vector Graphics (SVG) format. The digital input can bestored in a digital input store (e.g., a storage device local to thecomputing device 102 and/or accessed via a network) by the digital inputsystem 116 and/or the applications 106.

FIG. 2 illustrates an example system 200 including an application anddigital input system in accordance with one or more embodiments. FIG. 2is discussed with reference to elements of FIG. 1. The digital inputsystem 116 includes an input data collection module 202, an inputbehavior determination module 204, and a data display module 206. Thedigital input system 116 optionally communicates with an application106, which can performs various operations based on the input data asdiscussed in more detail below.

The input data collection module 202 collects input data for digitalinputs (e.g., to the computing device 102). A digital input is describedusing various information referred to as input data. In one or moreembodiments, the input data includes a set of coordinates and optionallypressure applied at each coordinate. The coordinates can be in variouscoordinate systems, such as a 2-dimensional Cartesian coordinate system,a polar coordinate system, and so forth. The pressure or force can bemeasured in various units, such as pascals. The coordinates andoptionally pressure can be sensed by various sensors of the touch inputdevices 120 (e.g., sensors in the display device 110, sensors in the pen122, and so forth). The input data can additionally or alternativelyinclude other data, such as an angle or tilt of the input device, ashape of the input device (e.g., in contact with a touchscreen), and soforth.

The coordinates included in the input data are a set or series ofcoordinates that identify the location of the input mechanism atparticular times as the digital input is being provided by the user.These particular times can be regular or irregular intervals (e.g.,every 10 milliseconds). The coordinates are detected or sensed by thepen digitizer 118 or a touch input device 120, such as by the displaydevice 110, by the pen 122, and so forth. Using the example of thedigital ink input of “Ink” in FIG. 1, the input data for the digital inkinput is the coordinates that identify the location of the inputmechanism as the letter “I” is written, as the letter “n” is written,and as the letter “k” is written. In one or more embodiments, as usedherein a digital input refers to the movement of the input device orobject from being first sensed as providing input (e.g., touching atouchscreen device or a “pen down” event) through the input device orobjet no longer being sensed as providing input (e.g., the input devicebeing lifted away from the touchscreen device or a “pen up” event).

The input data collection module 202 receives a first input andoptionally a second input. The first input and second input can each beprovided using various different input devices or objects (e.g., pens,stylus, fingers, etc.). The first input and second input are eachprovided via a different hand of the user, the first input typicallybeing provided by a dominant hand of the user and the second inputtypically being provided by the non-dominant hand of the user. The inputdata collection module 202 is able to distinguish between the firstinput and the second input.

The input data collection module 202 can distinguish between the firstinput and the second input in a variety of different manners. In one ormore embodiments, second inputs are provided as touch inputs using oneor more fingers (and/or palm) and first inputs are provided using anactive pen (e.g., as touch or other types of inputs). The input datacollection module 202 can distinguish between finger (and/or palm)touches and active pen touches (e.g., by a signal provided by the activepen to the computing device 102, by an area of a touchscreen or pendigitizer touched by the active pen, etc.). Thus, the input datacollection module 202 can readily distinguish between the first inputand the second input.

Additionally or alternatively, first inputs and second inputs can bothbe provided as touch inputs using one or more fingers (and/or palms). Insuch situations, the input data collection module 202 can distinguishbetween the dominant hand of the user and the non-dominant hand of theuser, and identifies touch inputs from the dominant hand of the user asfirst inputs, and touch inputs from the non-dominant hand of the user assecond inputs. The input data collection module 202 can distinguishbetween the dominant hand of the user and the non-dominant hand of theuser using any of a variety of public and/or proprietary techniques. Forexample, the user can specify which is his or her dominant hand andnon-dominant hand (e.g., if the right hand is the dominant hand, thenthe input data collection module 202 can determine that a right-mosttouch input is from the dominant hand). By way of another example,various other devices can be used to identify which hand is the dominanthand and which is the non-dominant hand, such as cameras monitoring usertouch inputs or other user actions, accelerometer values received duringtouch inputs, jewelry or devices (e.g., that are sensed or communicatewith the computing device 102) worn on a user's hand (or hands), and soforth.

Various different behaviors are supported for the first input, and theinput behavior determination module 204 selects one of the multiplefirst inputs based on whether the second input is detectedsimultaneously with the first input. Thus, for example, one behavior forthe first input is selected if the user is not touching the touchscreenwith his or her non-dominant hand while the first input is received (orat least at the start of the first input), and a different behavior isselected if the user is touching the touchscreen with his or hernon-dominant hand while the first input is received (or at least at thestart of the first input).

Once the behavior for the first input is selected, various operationscan be performed on the input data. These operations can includemodifying the input data (e.g., so that it conforms to (e.g., isadjacent to) an edge of a stencil or some other shape), generatingadditional input data (for display on a display of the computing device102 or a different display), combinations thereof, and so forth. Theinput data (optionally as operated on) is provided to the data displaymodule 206, which controls the display of data on a display device basedon the digital input as appropriate. In some situations, controlling thedisplay of data includes displaying the digital input (e.g., insituations in which the digital input is digital ink). Additionally oralternatively, controlling the display of data can include erasing data,determining a location to which icons or characters in a game are to bemoved, generating a path for a vehicle (e.g., a drone), and so forth.

Various different second inputs can be detected, such as single fingertouch, 2-finger touch, 3-finger touch, and so forth. The input behaviordetermination module 204 determines whether criteria for a second inputis satisfied (e.g., a particular number or at least a threshold numberof fingers are touching the touchscreen), and determine that the secondinput occurs in response to the criteria being satisfied. The criteriafor the second input can also include particular areas or portions of atouchscreen or input device that are to be touched, such as a locationwhere digital ink (e.g., a line) is already drawn, a location where aparticular object is displayed, and so forth.

In one or more embodiments, if the second input is receivedsimultaneously with the first input, then one behavior of the firstinput is selected. This selected behavior continues to be the behaviorof the first input until the digital input ends (e.g., the input deviceor object is no longer sensed by the input data collection module 202).Additionally or alternatively, the selected behavior can continue untilthe second input is no longer being received, at which point a differentbehavior for the first input is selected. The second input beingreceived simultaneously with the first input refers to the second inputand the first input being received concurrently for at least a thresholdamount of time (e.g., 200 milliseconds), or not concurrently but withina threshold amount of time (e.g., within 100 milliseconds) of oneanother. Thus, if the second input and the first input are received atdifferent times (e.g., not concurrently for at least a threshold amountof time, or not within a threshold amount of time of one another), thesecond input is referred to as not being received simultaneously withthe first input.

Various different behaviors of the first input can be selected from. Inone or more embodiments, the input behavior determination module 204selects the behavior, although alternatively an indication of whetherthe second input is received simultaneously with the first input can beprovided to the application 106 and the application can select thebehavior of the first input. The implementation of the selected behavior(which can include modifying the input data and/or generating additionalinput data) can be performed by the digital input system 116 and/or theapplication 106 using any of a variety of public and/or proprietarytechniques.

Which of the multiple different behaviors is selected for situations inwhich the second input is received simultaneously with the first inputand which of the multiple different behaviors is selected for situationsin which the second input is not received simultaneously with the firstinput can be specified in different manners. For example, userpreference settings can specify which behavior is associated withsimultaneous first input and second input receipt and which behavior isassociated with non-simultaneous first input and second input receipt.By way of another example, the digital input system 116 and/orapplication 106 can provide default settings or use other rules orcriteria to determine which behavior is associated with simultaneousfirst input and second input receipt and which behavior is associatedwith non-simultaneous first input and second input receipt.

One example of a behavior that can be selected is freeform input usingthe first input. With freeform input the digital input is the digitalinput received (e.g., including some wiggle or wobble in the line due toslight movements of the user's hand when providing the digital input).

Another example of a behavior that can be selected is drawing a smoothcircle, arc, or ellipse. The digital input received as the first inputis modified to generate a smooth circle, arc, or ellipse.

Another example of a behavior that can be selected is conforming thedigital input to the edge of a soft stencil. A “soft” stencil is used(and optionally displayed), the soft stencil referring to a stencil thatis generated and displayed by the application 106 (or other programrunning on the computing device 102) in contrast to a physical stencilavailable to a user of the application 106. Various different stencilscan be used, such as a ruler, a protractor, a circle, a French curve,and so forth. When using a stencil, the input data is modified asappropriate so that the digital input conforms to the edge of thestencil rather than being freeform.

Another example of a behavior that can be selected is mirroring thedigital input from the first input. Mirroring the digital input refersto creating an additional digital input about one or more axes or lines(e.g., a vertical axis or a horizontal axis). For example, the user maydesire to draw a heart shape and provide digital input that is the righthalf of the heart shape. An additional digital input that is the lefthalf of the heart shape is automatically generated.

Another example of a behavior that can be selected is projecting thedigital input to another display (in addition to or in place ofproviding the digital input to the display of the computing device 102).For example, the computing device 102 may be a tablet or smartphone, andthe digital input may be projected from the tablet or smartphone to alarger television or monitor.

FIGS. 3-7 illustrate examples of using the selecting first digital inputbehavior based on a second touch input techniques discussed herein inaccordance with one or more embodiments. FIGS. 3-7 are discussed withreference to elements of FIGS. 1 and 2.

FIG. 3 illustrates an example 300 in which a first input is receivedfrom the pen 122, and no second input is received simultaneously withthe first input. In the example 300, the pen 122 is used to provide adigital input on a touchscreen display 302. In response to the firstinput and the second input not being received simultaneously, a firstinput behavior of freeform input is selected. The user may attempt todraw a smooth straight line, but due to the wiggly or wobbly nature ofthe freehand input with the pen 122 the digital input is displayed as aline 304 that is not a smooth straight line.

FIG. 4 illustrates an example 400 in which a first input is receivedfrom the pen 122, and a second input is received simultaneously with thefirst input. The second input is a finger 402 of the user's non-dominanthand touching the touchscreen display 404. In response to the firstinput and the second input being received simultaneously, a soft stencil406 (illustrated as a ruler) is displayed and a first input behavior ofdrawing a smooth straight line along the soft stencil 406 is selected.The soft stencil 406 can be displayed in different locations on thedisplay 404, such as at a default location, at a location adjacent to oron top of the finger 402, at a location at which the tip of the pen 122is adjacent an edge of the soft stencil 406, and so forth. The user canoptionally move (e.g., up, down, left, right, rotate, etc.) the ruler bymoving his or her finger 402 in a corresponding manner (e.g., up, down,left, right, rotate, etc.). The pen 122 is used to provide a digitalinput on the touchscreen display 404, but the input data is modified sothat the digital input conforms to the edge of the soft stencil 406,providing a digital input that results in display of a smooth straightline 408 despite any wiggle or wobble that may be present in the pen 122due to the freehand nature of the first input.

FIG. 5 illustrates an example 500 in which a first input is receivedfrom the pen 122, and a second input is received simultaneously with thefirst input. The second input is a finger 502 of the user's non-dominanthand touching the touchscreen display 504. The location at which thefinger touches the touchscreen display 504 can be unrelated to thelocation at which the first input is received. In response to the firstinput and the second input being received simultaneously, a first inputbehavior of drawing a smooth straight line is selected. The pen 122 isused to provide a digital input on the touchscreen display 504, but theinput data is modified so that the digital input conforms to a smoothstraight line, providing a digital input that results in display of asmooth straight line 506 despite any wiggle or wobble that may bepresent in the pen 122 due to the freehand nature of the first input.The example 500 is similar to the example 400 of FIG. 4, although nosoft stencil 506 (e.g., a ruler) is displayed in the example 500.

FIG. 6 illustrates an example 600 in which a first input is receivedfrom the pen 122, and a second input is received simultaneously with thefirst input. A line 602 previously drawn on the touchscreen display 604(e.g., using the pen 122 or otherwise) is shown. The second input is afinger 606 of the user's non-dominant hand touching the line 602displayed on the touchscreen display 604. In response to the first inputand the second input being received simultaneously, a first inputbehavior of drawing a smooth straight circle having a diameter equal tothe length of the line 602 is selected. The pen 122 is used to provide adigital input on the touchscreen display 606 (e.g., in an approximatelycircular manner), but the input data is modified so that the digitalinput conforms to a smooth straight circle having a diameter equal tothe length of the line 602, providing a digital input that results indisplay of a smooth straight circle 608 despite any wiggle or wobblethat may be present in the pen 122 due to the freehand nature of thefirst input.

FIG. 7 illustrates an example 700 in which a first input is receivedfrom the pen 122, and a second input is received simultaneously with thefirst input. A line 702 previously drawn on the touchscreen display 704(e.g., using the pen 122 or otherwise) is shown. The second input is afinger 706 of the user's non-dominant hand touching the line 702displayed on the touchscreen display 704. In response to the first inputand the second input being received simultaneously, a first inputbehavior of drawing a smooth straight arc having a diameter equal to thelength of the line 702 is selected. The pen 122 is used to provide adigital input on the touchscreen display 704 (e.g., in an approximateshape of an arc), but the input data is modified so that the digitalinput conforms to a smooth straight arc having a radius equal toone-half the length of the line 702 (e.g., a radius as if the arc werepart of a circle having diameter equal to the length of the line 702),providing a digital input that results in display of a smooth straightarc 708 despite any wiggle or wobble that may be present in the pen 122due to the freehand nature of the first input. The length of the arc canbe determined in various manners, such as being the length of thedigital input provided as the first input. Although illustrated as asmooth straight arc having a radius equal to one-half the length of theline 702, the arc can have a different radius, such as a radius equal tothe length of the line 702. Similarly, although illustrated as a smoothstraight arc having a center at the middle of the line 702, the centerof the arc can be at other locations, such as at the end of the line702. The location of the center can vary, for example, based on thelocation of the finger 706 (e.g., if the location of the finger iswithin a threshold distance of the center of the line 702 then thelocation of the center of the arc is the middle of the line 702, and ifthe location of the finger is within a threshold distance of an end ofthe line 702 then the location of the center of the arc is that end ofthe line 702).

FIG. 8 is a flowchart illustrating an example process 800 forimplementing the selecting first digital input behavior based on asecond input in accordance with one or more embodiments. Process 800 canbe implemented in software, firmware, hardware, or combinations thereof.Process 800 is carried out by a digital input system and/or, such as thedigital input system 116 of FIG. 1 or FIG. 2, and/or the application 106of FIG. 1 or FIG. 2. Process 800 is shown as a set of acts and is notlimited to the order shown for performing the operations of the variousacts. Process 800 is an example process for implementing the selectingfirst digital input behavior based on a second input; additionaldiscussions of implementing the selecting first digital input behaviorbased on a second input are included herein with reference to differentfigures.

In process 800, a first input is received by the digital input system(act 802). The first input is received from an input device or object,such as an active pen, a stylus, a finger, and so forth. The first inputis received, for example, from the dominant hand of the user. In one ormore embodiments, this first input is freehand input.

A determination is made as to whether a second input is receivedsimultaneously with the first input (act 804). In one or moreembodiments, the second input is a touch input. The second input isreceived, for example, from the non-dominant hand of the user.Particular criteria for the second input (e.g., a particular number offingers touching a touchscreen or other input device, a location of atouchscreen or other input device that is touched, etc.) may be appliedto determine whether the second input is received simultaneously withthe first input.

One of multiple input behaviors is selected based on whether the secondinput is received simultaneously with the first input (act 806). Asdiscussed above, two different input behaviors can be selected from, onebeing in situations in which the first input is received simultaneouslywith the second input, and the other of which is selected in situationsin which the first input is not received simultaneously with the secondinput.

The display of data is controlled based on the first input as well asthe selected one of the multiple behaviors (act 808). This controllingof the display of data can take various forms, such as displayingmodified input data, displaying additional input data, erasing data,setting a destination location or icon, and so forth.

Although selection between two different behaviors is discussed herein,it should be noted that selection of one among three or more differentbehaviors can analogously be supported by the digital input system.These three or more different behaviors can be supported based ondifferences in second input criteria. For example, one behavior can beselected if the first input is not received simultaneously with a secondinput, a different behavior can be selected if the first input isreceived simultaneously with a second input that is a single fingertouching a touchscreen, and yet another behavior can be selected if thefirst input is received simultaneously with a second input that is threefingers touching the touchscreen.

The techniques discussed herein thus support various usage scenarios.For example, a user can touch the touchscreen or other input device withthree fingers of his or her non-dominant hand, and in response the penused to provide digital input changes from drawing a circle with awiggly line to drawing a smooth circle. By way of another example, auser can select whether he or she desires to draw a line freeform oralong a stencil edge—if the user provides the first input withoutsimultaneously providing the second input then the line is drawnfreeform, but if the user provides the first input while simultaneouslyproviding the second input then the line is drawn constrained by astencil edge (e.g., a ruler or other straight edge). By way of anotherexample, a user can touch the touchscreen or other input device with asingle finger of his or her non-dominant hand and draw a line with a penusing his or her dominant hand, and in response the pen draws a smoothstraight line. By way of another example, a user can touch an arbitraryink stroke displayed on a touchscreen with one finger of his or hernon-dominant hand and draw a smooth straight (e.g., perfect) circle orarc using the length of the stroke as the diameter.

The user is thus provided with an easy and intuitive user interface forselecting first input behavior. Resources for maintaining and providingadditional menu selections to allow for different types of inputbehavior need not be maintained. Providing the easy and intuitive userinterface for selecting first input behavior can also reduce the amountof time taken for a user to provide the digital input he or she desires,thereby conserving resources and energy usage of the computing device.

Although particular functionality is discussed herein with reference toparticular modules, it should be noted that the functionality ofindividual modules discussed herein can be separated into multiplemodules, and/or at least some functionality of multiple modules can becombined into a single module.

Additionally, a particular module discussed herein as performing anaction includes that particular module itself performing the action, oralternatively that particular module invoking or otherwise accessinganother component or module that performs the action (or performs theaction in conjunction with that particular module). Thus, a particularmodule performing an action includes that particular module itselfperforming the action and/or another module invoked or otherwiseaccessed by that particular module performing the action.

FIG. 9 illustrates an example system generally at 900 that includes anexample computing device 902 that is representative of one or moresystems and/or devices that may implement the various techniquesdescribed herein. The computing device 902 may be, for example, a serverof a service provider, a device associated with a client (e.g., a clientdevice), an on-chip system, and/or any other suitable computing deviceor computing system.

The example computing device 902 as illustrated includes a processingsystem 904, one or more computer-readable media 906, and one or more I/OInterfaces 908 that are communicatively coupled, one to another.Although not shown, the computing device 902 may further include asystem bus or other data and command transfer system that couples thevarious components, one to another. A system bus can include any one orcombination of different bus structures, such as a memory bus or memorycontroller, a peripheral bus, a universal serial bus, and/or a processoror local bus that utilizes any of a variety of bus architectures. Avariety of other examples are also contemplated, such as control anddata lines.

The processing system 904 is representative of functionality to performone or more operations using hardware. Accordingly, the processingsystem 904 is illustrated as including hardware elements 910 that may beconfigured as processors, functional blocks, and so forth. This mayinclude implementation in hardware as an application specific integratedcircuit or other logic device formed using one or more semiconductors.The hardware elements 910 are not limited by the materials from whichthey are formed or the processing mechanisms employed therein. Forexample, processors may be comprised of semiconductor(s) and/ortransistors (e.g., electronic integrated circuits (ICs)). In such acontext, processor-executable instructions may beelectronically-executable instructions.

The computer-readable media 906 is illustrated as includingmemory/storage 912. The memory/storage 912 represents memory/storagecapacity associated with one or more computer-readable media. Thememory/storage 912 may include volatile media (such as random accessmemory (RAM)) and/or nonvolatile media (such as read only memory (ROM),Flash memory, optical disks, magnetic disks, and so forth). Thememory/storage 912 may include fixed media (e.g., RAM, ROM, a fixed harddrive, and so on) as well as removable media (e.g., Flash memory, aremovable hard drive, an optical disc, and so forth). Thecomputer-readable media 906 may be configured in a variety of other waysas further described below.

The one or more input/output interface(s) 908 are representative offunctionality to allow a user to enter commands and information tocomputing device 902, and also allow information to be presented to theuser and/or other components or devices using various input/outputdevices. Examples of input devices include a keyboard, a cursor controldevice (e.g., a mouse), a microphone (e.g., for voice inputs), ascanner, touch functionality (e.g., capacitive or other sensors that areconfigured to detect physical touch), a camera (e.g., which may employvisible or non-visible wavelengths such as infrared frequencies todetect movement that does not involve touch as gestures), and so forth.Examples of output devices include a display device (e.g., a monitor orprojector), speakers, a printer, a network card, tactile-responsedevice, and so forth. Thus, the computing device 902 may be configuredin a variety of ways as further described below to support userinteraction.

The computing device 902 also includes a digital input system 914. Thedigital input system 914 provides various functionality supportingselecting first digital input behavior based on a second input asdiscussed above. The digital input system 914 can be, for example, thedigital input system 116 of FIG. 1 or FIG. 2.

Various techniques may be described herein in the general context ofsoftware, hardware elements, or program modules. Generally, such modulesinclude routines, programs, objects, elements, components, datastructures, and so forth that perform particular tasks or implementparticular abstract data types. The terms “module,” “functionality,” and“component” as used herein generally represent software, firmware,hardware, or a combination thereof. The features of the techniquesdescribed herein are platform-independent, meaning that the techniquesmay be implemented on a variety of computing platforms having a varietyof processors.

An implementation of the described modules and techniques may be storedon or transmitted across some form of computer-readable media. Thecomputer-readable media may include a variety of media that may beaccessed by the computing device 902. By way of example, and notlimitation, computer-readable media may include “computer-readablestorage media” and “computer-readable signal media.”

“Computer-readable storage media” refers to media and/or devices thatenable persistent storage of information and/or storage that istangible, in contrast to mere signal transmission, carrier waves, orsignals per se. Thus, computer-readable storage media refers tonon-signal bearing media. The computer-readable storage media includeshardware such as volatile and non-volatile, removable and non-removablemedia and/or storage devices implemented in a method or technologysuitable for storage of information such as computer readableinstructions, data structures, program modules, logic elements/circuits,or other data. Examples of computer-readable storage media may include,but are not limited to, RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other opticalstorage, hard disks, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or other storage device,tangible media, or article of manufacture suitable to store the desiredinformation and which may be accessed by a computer.

“Computer-readable signal media” refers to a signal-bearing medium thatis configured to transmit instructions to the hardware of the computingdevice 902, such as via a network. Signal media typically may embodycomputer readable instructions, data structures, program modules, orother data in a modulated data signal, such as carrier waves, datasignals, or other transport mechanism. Signal media also include anyinformation delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media include wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared, and other wireless media.

As previously described, the hardware elements 910 and computer-readablemedia 906 are representative of instructions, modules, programmabledevice logic and/or fixed device logic implemented in a hardware formthat may be employed in some embodiments to implement at least someaspects of the techniques described herein. Hardware elements mayinclude components of an integrated circuit or on-chip system, anapplication-specific integrated circuit (ASIC), a field-programmablegate array (FPGA), a complex programmable logic device (CPLD), and otherimplementations in silicon or other hardware devices. In this context, ahardware element may operate as a processing device that performsprogram tasks defined by instructions, modules, and/or logic embodied bythe hardware element as well as a hardware device utilized to storeinstructions for execution, e.g., the computer-readable storage mediadescribed previously.

Combinations of the foregoing may also be employed to implement varioustechniques and modules described herein. Accordingly, software,hardware, or program modules and other program modules may beimplemented as one or more instructions and/or logic embodied on someform of computer-readable storage media and/or by one or more hardwareelements 910. The computing device 902 may be configured to implementparticular instructions and/or functions corresponding to the softwareand/or hardware modules. Accordingly, implementation of modules as amodule that is executable by the computing device 902 as software may beachieved at least partially in hardware, e.g., through use ofcomputer-readable storage media and/or hardware elements 910 of theprocessing system. The instructions and/or functions may beexecutable/operable by one or more articles of manufacture (for example,one or more computing devices 902 and/or processing systems 904) toimplement techniques, modules, and examples described herein.

As further illustrated in FIG. 9, the example system 900 enablesubiquitous environments for a seamless user experience when runningapplications on a personal computer (PC), a television device, and/or amobile device. Services and applications run substantially similar inall three environments for a common user experience when transitioningfrom one device to the next while utilizing an application, playing avideo game, watching a video, and so on.

In the example system 900, multiple devices are interconnected through acentral computing device. The central computing device may be local tothe multiple devices or may be located remotely from the multipledevices. In one or more embodiments, the central computing device may bea cloud of one or more server computers that are connected to themultiple devices through a network, the Internet, or other datacommunication link.

In one or more embodiments, this interconnection architecture enablesfunctionality to be delivered across multiple devices to provide acommon and seamless experience to a user of the multiple devices. Eachof the multiple devices may have different physical requirements andcapabilities, and the central computing device uses a platform to enablethe delivery of an experience to the device that is both tailored to thedevice and yet common to all devices. In one or more embodiments, aclass of target devices is created and experiences are tailored to thegeneric class of devices. A class of devices may be defined by physicalfeatures, types of usage, or other common characteristics of thedevices.

In various implementations, the computing device 902 may assume avariety of different configurations, such as for computer 916, mobile918, and television 920 uses. Each of these configurations includesdevices that may have generally different constructs and capabilities,and thus the computing device 902 may be configured according to one ormore of the different device classes. For instance, the computing device902 may be implemented as the computer 916 class of a device thatincludes a personal computer, desktop computer, a multi-screen computer,laptop computer, netbook, and so on.

The computing device 902 may also be implemented as the mobile 918 classof device that includes mobile devices, such as a mobile phone, portablemusic player, portable gaming device, a tablet computer, a multi-screencomputer, and so on. The computing device 902 may also be implemented asthe television 920 class of device that includes devices having orconnected to generally larger screens in casual viewing environments.These devices include televisions, set-top boxes, gaming consoles, andso on.

The techniques described herein may be supported by these variousconfigurations of the computing device 902 and are not limited to thespecific examples of the techniques described herein. This functionalitymay also be implemented all or in part through use of a distributedsystem, such as over a “cloud” 922 via a platform 924 as describedbelow.

The cloud 922 includes and/or is representative of a platform 924 forresources 926. The platform 924 abstracts underlying functionality ofhardware (e.g., servers) and software resources of the cloud 922. Theresources 926 may include applications and/or data that can be utilizedwhile computer processing is executed on servers that are remote fromthe computing device 902. Resources 926 can also include servicesprovided over the Internet and/or through a subscriber network, such asa cellular or Wi-Fi network.

The platform 924 may abstract resources and functions to connect thecomputing device 902 with other computing devices. The platform 924 mayalso serve to abstract scaling of resources to provide a correspondinglevel of scale to encountered demand for the resources 926 that areimplemented via the platform 924. Accordingly, in an interconnecteddevice embodiment, implementation of functionality described herein maybe distributed throughout the system 900. For example, the functionalitymay be implemented in part on the computing device 902 as well as viathe platform 924 that abstracts the functionality of the cloud 922.

In the discussions herein, various different embodiments are described.It is to be appreciated and understood that each embodiment describedherein can be used on its own or in connection with one or more otherembodiments described herein. Further aspects of the techniquesdiscussed herein relate to one or more of the following embodiments.

A method implemented in a computing device, the method comprising:receiving a first input from an input device or object, the first inputcomprising a freehand input; determining whether a second input to thecomputing device is received simultaneously with receipt of the firstinput; selecting one of multiple input behaviors for the first input,the selecting including selecting a first behavior for the first inputin response to determining that the second input to the computing deviceis received simultaneously with receipt of the first input, andselecting a second behavior for the first input in response todetermining that the second input to the computing device is received ata different time than the first input; and controlling a display of databy the computing device based at least on both the first input and theselected one of the multiple input behaviors.

Alternatively or in addition to any of the above described methods, anyone or combination of: the first input comprising a touch input to thecomputing device and the second input comprising a touch input to thecomputing device; the first input comprising a touch input to atouchscreen input device; the input device comprising an active pen; thereceiving the first input comprising receiving the first input from adominant user hand, and the method further comprising receiving thesecond input from a non-dominant user hand; the first behaviorcomprising constraining a digital input corresponding to the first inputto being a digital input along an edge of a stencil, the second behaviorcomprising allowing the digital input corresponding to the first inputto be a freeform input; the second input comprising a single-fingertouch input, and the first behavior comprising constraining a digitalinput corresponding to the first input to a smooth straight line; thesecond input comprising a single-finger touch input on a displayed inkstroke, and the first behavior comprising constraining a digital inputcorresponding to the first input to a smooth straight circle or archaving a diameter or radius equal to the length of the displayed inkstroke; the controlling the display of data comprising displayingdigital ink using the selected one of the multiple input behaviors; theselecting further comprising selecting, based on which of one or morecriteria corresponding to the second input are satisfied, the secondbehavior for the first input or a third of the multiple input behaviorsfor the first input.

A computing device comprising: an input data collection modulecomprising instructions configured to receive a first input and a secondinput, the first input comprising a freehand input; an input behaviordetermination module comprising instructions configured to determinewhether the second input is received simultaneously with the firstinput, and further configured to select a first of multiple behaviorsfor the first input in response to the second input being receivedsimultaneously with the first input, and to select a second of themultiple behaviors for the first input in response to the second inputbeing received at a different time than the first input; and a datadisplay module comprising instructions configured to control a displayof data based at least on both the first input and the selected behaviorfor the first input.

Alternatively or in addition to any of the above described computingdevices, any one or combination of: the first input comprising a touchinput to a touchscreen of the computing device; the first inputcomprising input received via an active pen; the first input beingreceived from a dominant user hand, and the second input being receivedfrom a non-dominant user hand; the first behavior comprisingconstraining a digital input corresponding to the first input to being adigital input along an edge of a stencil, the second behavior comprisingallowing the digital input corresponding to the first input to be afreeform input; the data display module being further configured todisplay digital ink using the selected behavior; the input behaviordetermination module being further configured to select, based on whichof one or more criteria corresponding to the second input are satisfied,the second behavior for the first input or a third of the multiplebehaviors for the first input.

A computing device comprising: one or more processors; and acomputer-readable storage medium having stored thereon multipleinstructions that, responsive to execution by the one or moreprocessors, cause the one or more processors to: receive a first inputincluding movement of an input device or object; determine whether asecond input is received by the computing device simultaneously withreceipt of the first input; select one of multiple input behaviors forthe first input, the selecting including selecting a first behavior forthe first input in response to determining that the second input to thecomputing device is received simultaneously with receipt of the firstinput, and selecting a second behavior for the first input in responseto determining that the second input to the computing device is receivedat a different time than the first input; and control a display of databy the computing device based at least on both the first input and theselected one of the multiple input behaviors.

Alternatively or in addition to any of the above described computingdevices, any one or combination of: the computing device furthercomprising a touchscreen, and the first input comprising a touch inputto the touchscreen; the receiving comprising receiving the first inputfrom an active pen.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

What is claimed is:
 1. A method implemented in a computing device, themethod comprising: receiving a first input from an input device orobject, the first input comprising a freehand input; determining whethera second input to the computing device is received simultaneously withreceipt of the first input based on applying a set of criteria, each ofthe first input and the second input comprising at least one of a voiceinput, a touch input, a mouse input, a pen input, a stylus input, and afinger input, the set of criteria including: continuing to receive thefirst input; and concurrently receiving the second input for at least athreshold amount of time; selecting one of multiple input behaviors forthe first input, the selecting including selecting a first behavior forthe first input in response to determining that the second input to thecomputing device is received simultaneously with receipt of the firstinput, and selecting a second behavior for the first input in responseto determining that the second input to the computing device is notreceived simultaneously with receipt of the first input; and controllinga display of data by the computing device in response to the first inputand based on the selected one of the multiple input behaviors.
 2. Themethod as recited in claim 1, the first input comprising a first touchinput to the computing device and the second input comprising a secondtouch input to the computing device.
 3. The method as recited in claim1, the receiving the first input comprising receiving the first inputfrom a dominant user hand, and the method further comprising receivingthe second input from a non-dominant user hand.
 4. The method as recitedin claim 1, the second input comprising a single-finger touch input on adisplayed ink stroke, and the first behavior comprising constraining adigital input corresponding to the first input to a smooth circle havinga diameter equal to the length of the displayed ink stroke.
 5. Themethod as recited in claim 1, the controlling the display of datacomprising displaying digital ink using the selected one of the multipleinput behaviors.
 6. The method as recited in claim 1, the second inputcomprising a single-finger touch input on a displayed ink stroke, andthe first behavior comprising constraining a digital input correspondingto the first input to a smooth arc having a radius equal to the lengthof the displayed ink stroke.
 7. The method as recited in claim 1,wherein the second input comprises a plurality of second inputs.
 8. Themethod as recited in claim 1, the first behavior comprising mirroring adigital input corresponding to the first input about one or more axes,the second behavior comprising allowing the digital input correspondingto the first input to be a freeform input.
 9. The method as recited inclaim 1, the controlling the display of data comprising projecting adigital input corresponding to the first input to a display deviceseparate from the computing device.
 10. A computing device comprising:an input data collection module comprising instructions configured toreceive a first input and a second input, the first input comprising afreehand input, the second input comprising a plurality of secondinputs; an input behavior determination module comprising instructionsconfigured to: determine whether the second input is receivedsimultaneously with the first input based on applying a set of criteriaincluding: continuing to receive the first input; and concurrentlyreceiving the second input for at least a threshold amount of time; andselect a first of multiple behaviors for the first input in response tothe second input being received simultaneously with the first input, andselect a second of the multiple behaviors for the first input inresponse to the second input not being received simultaneously withreceipt of the first input; and a data display module comprisinginstructions configured to control a display of data in response to thefirst input and based on the selected behavior for the first input. 11.The computing device as recited in claim 10, the computing devicefurther comprising a touchscreen, and the first input comprising a touchinput to the touchscreen.
 12. The computing device as recited in claim10, the data display module being further configured to display digitalink using the selected behavior.
 13. The computing device as recited inclaim 10, wherein each of the first input and the second input comprisesat least one of a voice input, a touch input, a mouse input, a peninput, a stylus input, and a finger input.
 14. The computing device asrecited in claim 10, the first behavior comprising mirroring a digitalinput corresponding to the first input about one or more axes, thesecond behavior comprising allowing the digital input corresponding tothe first input to be a freeform input.
 15. The computing device asrecited in claim 10, the controlling the display of data comprisingprojecting a digital input corresponding to the first input to a displaydevice separate from the computing device.
 16. The computing device asrecited in claim 10, the second input comprising a single-finger touchinput on a displayed ink stroke, and the first behavior comprisingconstraining a digital input corresponding to the first input to asmooth circle having a diameter equal to the length of the displayed inkstroke.
 17. The computing device as recited in claim 10, the secondinput comprising a single-finger touch input on a displayed ink stroke,and the first behavior comprising constraining a digital inputcorresponding to the first input to a smooth arc having a radius equalto the length of the displayed ink stroke.
 18. A computing devicecomprising: one or more processors; and a computer-readable storagemedium having stored thereon multiple instructions that, responsive toexecution by the one or more processors, cause the one or moreprocessors to: receive a first input including movement of an inputdevice or object; determine whether a second input is received by thecomputing device simultaneously with receipt of the first input based onapplying a set of criteria, each of the first input and the second inputcomprising at least one of a voice input, a touch input, a mouse input,a pen input, a stylus input, and a finger input, the set of criteriaincluding: continuing to receive the first input; and concurrentlyreceiving the second input for at least a threshold amount of time;select one of multiple input behaviors for the first input, theselecting including selecting a first behavior for the first input inresponse to determining that the second input to the computing device isreceived simultaneously with receipt of the first input, and selecting asecond behavior for the first input in response to determining that thesecond input to the computing device is not received simultaneously withreceipt of the first input; and control a display of data by thecomputing device in response to the first input and based on theselected one of the multiple input behaviors.
 19. The computing deviceas recited in claim 18, the first behavior including causing display ofa stencil such that a location at which the first input is received isadjacent to an edge of the stencil.
 20. The computing device as recitedin claim 18, wherein the second input comprises a plurality of secondinputs.